// import router from '@/router'
// import store from '@/store'
// import {
//     getToken
// } from '@/utils/auth' // cookies

// // element ui components
// import NProgress from 'nprogress' // progress bar
// import 'nprogress/nprogress.css' // progress bar style
// import {
//     Message
// } from 'element-ui'

// NProgress.configure({
//     showSpinner: false
// })

// const whiteList = ['/login', '/secretreset/obtainauth', '/secretreset/resetpwd', '/secretreset/success']

// //路由导航守卫
// router.beforeEach((to, from, next) => {
//     NProgress.start()
//     if (store.getters.token) {
//         console.log(store.getters.token);
//         if (to.path === '/login') {
//             next({
//                 path: '/'
//             }) // 已有token， 没必要再登录
//             NProgress.done()
//         } else {
//             if (store.getters.addRouters.length === 0) { // 判断当前用户是否已拉取完 user_info信息
//                 // 登录后第一步：拉取user_info（用户个人信息
//                 let state = 1
//                 store.dispatch('GetInfo', {
//                     state
//                 }).then(res => {
//                     getMenuList(res, to, next)

//                 }).catch((err) => {
//                     store.dispatch('FedLogOut').then(() => { // 获取信息失败，只能重新登录，清除store和cookies中的Token
//                         Message.error(err.message)
//                         next({
//                             path: '/'
//                         })
//                     })
//                 })

//             } else {
//                 // store.dispatch('GenerateRoutes', store.getters.addRouters).then(() => { // 根据返回的菜单列表直接生成可访问的路由。（根据roles权限生成可访问的路由表，权限放在meta中）
//                 //    // 动态添加可访问路由表
//                 //     next() // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
//                 // })
//                 next()
//                 // 如果是登录，登录获取基本信息
//                 if (from.path === '/login' || JSON.stringify(store.getters.otherInfo) === '{}') {
//                     const info = store.getters.basicInfo
//                     const state = 2
//                     store.dispatch('GetInfo', {
//                         state,
//                         info
//                     })
//                     if (store.getters.basicInfo.authorIds.indexOf(5) != -1 || store.getters.basicInfo.authorIds.indexOf(4) != -1) {
//                         store.dispatch('GetCourseInfo')
//                     }
//                 }

//             }
//         }

//     } else {
//         /* has no token*/
//         if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单，直接进入
//             next()
//         } else {
//             next(`/login?redirect=${to.path}`) // 重定向到登录页, 待验证！！！！
//         }
//     }
// })

// router.afterEach(() => {
//     NProgress.done()
// })

// function getMenuList(res, to, next) {
//     const menuList = toChange(res.data.menuList, 1)
//     const first = {
//         path: '/',
//         component: resolve => require(['@/views/index/index'], resolve),
//         redirect: '/homepage',
//         name: 'first',
//         hidden: true,
//     }
//     menuList.push(first)
//     store.dispatch('GenerateRoutes', menuList).then(() => { // 根据返回的菜单列表直接生成可访问的路由。（根据roles权限生成可访问的路由表，权限放在meta中）
//         router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
//         next({
//             ...to,
//             replace: true
//         }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
//     })
// }

// function toChange(data, pid) {
//     const result = []
//     let temp = []
//     data.forEach(e => {
//         if (e.parentid === pid) {
//             let url = e.url
//             const obj = {
//                 path: '/' + e.permission,
//                 name: e.permission,
//                 // component:() => import('@/views/superadmin/sysmanage/menu'),
//                 meta: {
//                     title: e.name,
//                     icon: e.icon
//                 },
//                 hidden: e.hidden
//             }
//             const superA = '/views/superadmin'
//             const schoolA = '/views/schooladmin'
//             const teacherA = '/views/teacher'
//             const studentA = '/views/student'
//             if (url === 'index') {
//                 obj.component = () => import(`@/views/index/index`)
//             } else if (url === '/views/index/homepage') { // 首页
//                 obj.component = () => import('@/views/index/homepage')
//             } else if (url.indexOf(superA) != -1) {
//                 // rquire识别不了字符串，必须写出组件的目录前缀才能识别该组件
//                 // 切割'/views/...'部分
//                 url = url.slice(superA.length)
//                 obj.component = resolve => {
//                     require(["@/views/superadmin" + url + ".vue"], resolve)
//                 }
//             } else if (url.indexOf(schoolA) != -1) {
//                 url = url.slice(schoolA.length)
//                 obj.component = resolve => {
//                     require(["@/views/schooladmin" + url + ".vue"], resolve)
//                 }
//             } else if (url.indexOf(teacherA) != -1) {
//                 url = url.slice(teacherA.length)
//                 obj.component = resolve => {
//                     require(["@/views/teacher" + url + ".vue"], resolve)
//                 }
//             } else if (url.indexOf(studentA) != -1) {
//                 url = url.slice(studentA.length)
//                 obj.component = resolve => {
//                     require(["@/views/student" + url + ".vue"], resolve)
//                 }
//             }
//             //obj.component = resolve => {require(["@/views"+e.url+".vue"], resolve)}
//             temp = toChange(data, e.id)
//             if (temp.length > 0) {
//                 obj.children = temp
//             }
//             result.push(obj)
//         }
//     })
//     return result
// }
